package game;
import java.awt.*;

public class Unit
{
	private Color dGreen = new Color(0, 145,0);
	protected int x;
	protected int y;
	private int dir;
	private int dirNext;

	public Unit(){}

	public Unit(int a, int b, int d)
	{
		x = a;
		y = b;
		dir = d;
	}

	public int getX()
	{
		return x;
	}
	public int getY()
	{
		return y;
	}
	public boolean Hit(int a, int b)
	{
		boolean hit = false;
		if(x == a && y == b)
		{
			hit = true;
		}
		return hit;
	}
	public int getDir()
	{
		return dir;
	}
	public void setNextDir(int d)
	{
		dirNext = d;
	}
	public void paint(Graphics g, int part)
	{
		if(part == 2)
		{
			dir = dirNext;
		}
		g.setColor(dGreen);
		if(part == 0)
		{
			g.fillRect(x, y, 10, 10);
			g.setColor(Color.black);
			if(dirNext == dir)
			{
				if(dir == 0 || dir == 1)
				{
					g.fillRect(x, y + 4, 10, 2);
				}
				else
				{
					g.fillRect(x + 4, y, 2, 10);
				}
			}
			else
			{
				if(dir == 0 && dirNext == 2 || dir == 3 && dirNext == 1)
				{
					g.fillRect(x, y + 4, 6, 2);
					g.fillRect(x + 4, y, 2, 6);
				}
				if(dir == 2 && dirNext == 0 || dir == 1 && dirNext == 3)
				{
					g.fillRect(x + 5, y + 4, 6, 2);
					g.fillRect(x + 4, y + 4, 2, 6);
				}
				if(dir == 0 && dirNext == 3 || dir == 2 && dirNext == 1)
				{
					g.fillRect(x, y + 4, 6, 2);
					g.fillRect(x + 4, y + 4, 2, 6);
				}
				if(dir == 1 && dirNext == 2 || dir == 3 && dirNext == 0)
				{
					g.fillRect(x + 4, y + 4, 6, 2);
					g.fillRect(x + 4, y , 2, 6);
				}
			}
		}
		if(part > 0)
		{
			if(dir == 0 && part == 1 || dir == 1 && part == 2)
			{
				g.setColor(dGreen);
				g.fillRect(x, y, 5, 10);
				g.fillRect(x + 7, y + 3, 2, 4);
				g.fillRect(x + 6, y + 2, 2, 6);
				g.fillRect(x + 5, y + 1, 2, 8);
				if(part == 1)
				{
					g.setColor(Color.red);
					g.fillRect(x + 9, y + 4, 1, 2);
					g.fillRect(x + 10, y + 3, 1, 4);
					g.setColor(Color.yellow);
					g.fillRect(x + 5, y + 3, 2, 1);
					g.fillRect(x + 5, y + 6, 2, 1);
				}
				g.setColor(Color.black);
				g.fillRect(x, y + 4, 2, 2);
			}
			if(dir == 1 && part == 1 || dir == 0 && part == 2)
			{
				g.setColor(dGreen);
				g.fillRect(x + 5, y, 5, 10);
				g.fillRect(x + 2, y + 3, 2, 4);
				g.fillRect(x + 3, y + 2, 2, 6);
				g.fillRect(x + 4, y + 1, 2, 8);
				if(part == 1)
				{
					g.setColor(Color.red);
					g.fillRect(x + 1, y + 4, 1, 2);
					g.fillRect(x, y + 3, 1, 4);
					g.setColor(Color.yellow);
					g.fillRect(x + 4, y + 3, 2, 1);
					g.fillRect(x + 4, y + 6, 2, 1);
				}
				g.setColor(Color.black);
				g.fillRect(x + 8, y + 4, 2, 2);
			}
			if(dir == 2 && part == 1 || dir == 3 && part == 2)
			{
				g.setColor(dGreen);
				g.fillRect(x, y + 5, 10, 5);
				g.fillRect(x + 3, y + 2, 4, 2);
				g.fillRect(x + 2, y + 3, 6, 2);
				g.fillRect(x + 1, y + 4, 8, 2);
				if(part == 1)
				{
					g.setColor(Color.red);
					g.fillRect(x + 4, y + 1, 2, 1);
					g.fillRect(x + 3, y, 4, 1);
					g.setColor(Color.yellow);
					g.fillRect(x + 3, y + 4, 1, 2);
					g.fillRect(x + 6, y + 4, 1, 2);
				}
				g.setColor(Color.black);
				g.fillRect(x + 4, y + 8, 2, 2);
			}
			if(dir == 3 && part == 1 || dir == 2 && part == 2)
			{
				g.setColor(dGreen);
				g.fillRect(x, y, 10, 5);
				g.fillRect(x + 3, y + 6, 4, 2);
				g.fillRect(x + 2, y + 6, 6, 2);
				g.fillRect(x + 1, y + 5, 8, 2);
				if(part == 1)
				{
					g.setColor(Color.red);
					g.fillRect(x + 4, y + 9, 2, 1);
					g.fillRect(x + 3, y + 10, 4, 1);
					g.setColor(Color.yellow);
					g.fillRect(x + 3, y + 5, 1, 2);
					g.fillRect(x + 6, y + 5, 1, 2);
				}
				g.setColor(Color.black);
				g.fillRect(x + 4, y, 2, 2);
			}
		}
	}
}
